简介
Cycript是由saurik推出的一款运行在越狱iPhone上的脚本语言,是混合了objective-c与javascript语法的一个工具,让开发者在命令行下和应用交互,在运行时查看和修改应用。
Cycript安装
在Cydia
中搜索Cycript
直接安装
使用
需要先查找到相应的进行,才能进入,下面以Weibo.app为例
ps -e | grep -i weibo
我们可以看到Weibo.app
的进程id是3518,
输入 cycript -p 进程id
,下面一行变成cy#
,就表示可以输入脚本语言了
cycript -p 3518
退出cycript,没错带有?
?exit
详细使用
想要在Weibo.app界面弹出一个提示框,用cycript的话,只要两句代码就可以了,而且是实时注入的。
cy# alertView = [[UIAlertView alloc] initWithTitle:@"Cycript injection Weibo" message:@"Success" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]
cy# [alertView show]
可以在手机上立马看到效果了:
获取视图结构
UIApp.keyWindow.recursiveDescription().toString()
可以看到视图结构,知识比较复杂
结合Reveal我们知道微博的TabBar是自定义的结构WBTabBarButton
,下面我们把第一个TabBar的文字换成”TaoBao”
cy# #0x1105baca0
#"<WBTabBarButton: 0x1105baca0; baseClass = UIButton; frame = (64 0; 64 44); opaque = NO; layer = <CALayer: 0x1105b6590>>"
可以看到WBTabBarButton是UIButton的子类,所以我们通过
[#0x1105baca0 setTitle:@"TaoBao" forState:0]
可以看到已经有效果了,Cycript可以实现无侵入,修改代码了